官網的說明是:
Rack, a modular Ruby webserver interface
Rack 是一種介面,是 Ruby 可以和 WEB Server 進行溝通的橋梁。
可以說 Rack 是一種小型,模組化的 API 。
Rack 提供能夠回應 call 方法的物件,並且回傳一個包含以下三個元素的陣列:
1.HTTP 狀態(數字型態,例如正常回應是 200、找不到頁面是 404、伺服器錯誤是 500)。
2.HTTP Header(Hash 型態)。
3.Body(陣列型態,或是只要是個可以回應 each 方法的物件也可)。
其實呢,像 Sinatra(一種輕量框架)、Rails 和 Ruby,它們都是一種 Rack 的應用程式。
參考資料
https://railsbook.tw/extra/rack.html
https://github.com/rack/rack
https://ruby-china.github.io/rails-guides/v4.1/rails_on_rack.html#resources